/**
 * Ingenius-Group S.A.S
 *
 * Project: SAU
 * File: JDOPersistence.java
 * Date: 01/03/2011
 */

package com.ingenius.sau.server.persistence.jdo;

import com.ingenius.sau.server.persistence.AcademicProgramDAO;
import com.ingenius.sau.server.persistence.AssignedInstrumentDAO;
import com.ingenius.sau.server.persistence.DAOFactory;
import com.ingenius.sau.server.persistence.DocumentDAO;
import com.ingenius.sau.server.persistence.Factor2EvaluateDAO;
import com.ingenius.sau.server.persistence.FactorDAO;
import com.ingenius.sau.server.persistence.Feature2EvaluateDAO;
import com.ingenius.sau.server.persistence.FeatureDAO;
import com.ingenius.sau.server.persistence.GroupDAO;
import com.ingenius.sau.server.persistence.GuidelineDAO;
import com.ingenius.sau.server.persistence.Indicator2EvaluateDAO;
import com.ingenius.sau.server.persistence.IndicatorDAO;
import com.ingenius.sau.server.persistence.QuestionDAO;
import com.ingenius.sau.server.persistence.ResponseDAO;
import com.ingenius.sau.server.persistence.RoleDAO;
import com.ingenius.sau.server.persistence.ScaleDAO;
import com.ingenius.sau.server.persistence.SelfEvaluationDAO;
import com.ingenius.sau.server.persistence.UserDAO;

/**
 * Class <strong>JDOPersistence</strong>
 * 
 * @author Jesus David
 * @version 0.1
 */
public class JdoDAOFactory extends DAOFactory {

	private static final JdoDAOFactory instance = new JdoDAOFactory();

	private JdoDAOFactory() {
	}

	/**
	 * @return the instance
	 */
	public static JdoDAOFactory getInstance() {
		return instance;
	}

	@Override
	public UserDAO createUserDAO() {
		return new JdoUserDAO();
	}

	@Override
	public RoleDAO createRoleDAO() {
		return new JdoRoleDAO();
	}

	@Override
	public GroupDAO createGroupDAO() {
		return new JdoGroupDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ingenius.sau.server.persistence.DAOFactory#createGuidelineDAO()
	 */
	@Override
	public GuidelineDAO createGuidelineDAO() {
		return new JdoGuidelineDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ingenius.sau.server.persistence.DAOFactory#createFactorDAO()
	 */
	@Override
	public FactorDAO createFactorDAO() {
		return new JdoFactorDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ingenius.sau.server.persistence.DAOFactory#createFeatureDAO()
	 */
	@Override
	public FeatureDAO createFeatureDAO() {
		return new JdoFeatureDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ingenius.sau.server.persistence.DAOFactory#createIndicatorDAO()
	 */
	@Override
	public IndicatorDAO createIndicatorDAO() {
		return new JdoIndicatorDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createAcademicProgram()
	 */
	@Override
	public AcademicProgramDAO createAcademicProgram() {
		return new JdoAcademicProgramDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createSelfEvaluationDAO()
	 */
	@Override
	public SelfEvaluationDAO createSelfEvaluationDAO() {
		return new JdoSelfEvaluationDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createFactor2EvaluateDAO()
	 */
	@Override
	public Factor2EvaluateDAO createFactor2EvaluateDAO() {
		return new JdoFactor2EvaluateDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createFeature2EvaluateDAO
	 * ()
	 */
	@Override
	public Feature2EvaluateDAO createFeature2EvaluateDAO() {
		return new JdoFeature2EvaluateDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createIndicator2EvaluateDAO
	 * ()
	 */
	@Override
	public Indicator2EvaluateDAO createIndicator2EvaluateDAO() {
		return new JdoIndicator2EvaluateDAO();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.ingenius.sau.server.persistence.DAOFactory#createAssignedInstrumentDAO
	 * ()
	 */
	@Override
	public AssignedInstrumentDAO createAssignedInstrumentDAO() {
		return new JdoAssignedInstrumentDAO();
	}

	@Override
	public DocumentDAO createDocumentDAO() {
		return new JdoDocumentDAO();
	}

	@Override
	public QuestionDAO createQuestionDAO() {
		return new JdoQuestionDAO();
	}

	@Override
	public ResponseDAO createResponseDAO() {
		return new JdoResponseDAO();
	}

	@Override
	public ScaleDAO createScaleDAO() {
		return new JdoScaleDAO();
	}

}
